<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui"
      xmlns:h="http://java.sun.com/jsf/html">

    <body>

        <ui:composition template="./../../WEB-INF/templates/MainTemplate.xhtml">

            <ui:define name="bar">
                <h:form id="barForm">
                </h:form>
            </ui:define>

            
            <ui:define name="dialogs">
            </ui:define>
            
            <ui:define name="content">
                
                <p:panel id="leftColumnPanel" styleClass="leftColumnPanel noMargin noPadding noBorder">
                    <h:form id="datosCajeroForm">
                        <p:remoteCommand process="@this" name="setType" autoRun="true" update=":datosCajeroForm:datosCajeroFormPanel :productosTicketForm:datosProductos" actionListener="#{nuevaDevolucionBean.elegirCaja()}"></p:remoteCommand>
                        <p:growl autoUpdate="true" life="10000" id="ticketGrowl"></p:growl>
                        <p:panel styleClass="noMargin noPadding noBorder" id="datosCajeroFormPanel">
                            <f:facet name="header">#{messages.DatosVenta}</f:facet>
                            <p:panelGrid columns="2" styleClass="noMargin noPadding noBorder" id="datosVenta">
                                <p:outputLabel for="selectCaja" value="#{messages.Caja}"></p:outputLabel>
                                <p:selectOneMenu id="selectCaja" converter="#{cajaConverter}" value="#{nuevaDevolucionBean.ticket.caja}" required="true">
                                    <f:selectItem itemLabel="#{messages.SeleccionaCaja}" itemValue="" />  
                                    <f:selectItems value="#{nuevaDevolucionBean.cajasUsuario}" var="caja" itemLabel="#{caja.descripcion}" itemValue="#{caja}"></f:selectItems>
                                    <p:ajax event="change" update="selectCajero datosCajeroForm:datosCajeroFormPanel" listener="#{nuevaDevolucionBean.onCajaElegida()}"></p:ajax>
                                </p:selectOneMenu>
                                <p:outputLabel for="selectCajero" value="#{messages.Cajero}"></p:outputLabel>
                                <p:selectOneMenu filter="true" filterMatchMode="contains" converter="#{UsuarioConverter}" id="selectCajero" disabled="#{nuevaDevolucionBean.ticket.caja==null}" value="#{nuevaDevolucionBean.ticket.usuario}" required="true">
                                    <f:selectItem itemLabel="#{messages.SeleccionaCajero}" itemValue="" />  
                                    <f:selectItems value="#{nuevaDevolucionBean.ticket.caja.tienda.usuarioTiendaList}" var="usuarioTienda" itemLabel="#{usuarioTienda.usuario.nombreUsuario}" itemValue="#{usuarioTienda.usuario}"></f:selectItems>
                                    <p:ajax event="change" update="datosCajeroForm:datosCajeroFormPanel" listener="#{nuevaDevolucionBean.onCajaElegida()}"></p:ajax>
                                </p:selectOneMenu>
                            </p:panelGrid>
                            <p:panel id="datosCliente">
                                <f:facet name="header">#{messages.DatosCliente}</f:facet>
                                <p:panelGrid columns="4" id="panelGridPresentarCliente">
                                    <p:outputLabel for="presentarNombre" value="#{messages.Nombre}"></p:outputLabel>
                                    <h:outputText id="presentarNombre" value="#{nuevaDevolucionBean.ticket.cliente.nombre}"></h:outputText>
                                    <p:outputLabel for="presentarDNI" value="#{messages.NIF}"></p:outputLabel>
                                    <h:outputText id="presentarDNI" value="#{nuevaDevolucionBean.ticket.cliente.nif}"></h:outputText>
                                    <p:outputLabel for="presentarEmail" value="#{messages.Email}"></p:outputLabel>
                                    <h:outputText id="presentarEmail" value="#{nuevaDevolucionBean.ticket.cliente.email}"></h:outputText>
                                    <p:outputLabel for="presentarMovil" value="#{messages.Movil}"></p:outputLabel>
                                    <h:outputText id="presentarMovil" value="#{nuevaDevolucionBean.ticket.cliente.movil}"></h:outputText>
                                    <p:outputLabel for="presentarDescuento" value="#{messages.Descuento}"></p:outputLabel>
                                    <h:outputText id="presentarDescuento" value="#{nuevaDevolucionBean.ticket.cliente.descuento}"></h:outputText>
                                </p:panelGrid>

                            </p:panel>
                        </p:panel>
                    </h:form>
                    
                    <h:form id="cobroForm">
                        <p:panel id="panelCobro">
                            <f:facet name="header">#{messages.TotalADevolver}: #{nuevaDevolucionBean.totalAPagar}</f:facet>
                            <p:commandButton process="@this" value="#{messages.TerminarVenta}" action="#{nuevaDevolucionBean.crearTicket()}" update=":productosTicketForm:datosProductos @parent" disabled="#{!nuevaDevolucionBean.puedeTerminarVenta}"></p:commandButton>
                        </p:panel>
                    </h:form>
                </p:panel>
                
                
                <p:panel id="rightColumnPanel" styleClass="rightColumnPanel noMargin noPadding noBorder">                    
                    <h:form id="productosTicketForm">
                        <p:panel id="datosProductos">
                            <f:facet name="header">#{messages.ProductosElegidos}</f:facet>
                            <p:dataTable emptyMessage="#{messages.NoProductosVentaElegidos}" var="lineaTicket" value="#{nuevaDevolucionBean.ticket.lineaTicketList}">
                                <p:column sortBy="#{lineaTicket.productoTalla.producto.descripcion}" filterBy="#{lineaTicket.productoTalla.producto.descripcion}" filterMatchMode="contains" headerText="#{messages.Producto}">
                                    <h:outputText value="#{lineaTicket.productoTalla.producto.descripcion}"></h:outputText>
                                </p:column>
                                <p:column sortBy="#{lineaTicket.productoTalla.producto.color}" filterBy="#{lineaTicket.productoTalla.producto.color}" filterMatchMode="contains" headerText="#{messages.Color}">
                                    <h:outputText value="#{lineaTicket.productoTalla.producto.color}"></h:outputText>
                                </p:column>
                                <p:column sortBy="#{lineaTicket.productoTalla.talla.descripcion}" filterBy="#{lineaTicket.productoTalla.talla.descripcion}" filterMatchMode="contains" headerText="#{messages.Talla}">
                                    <h:outputText value="#{lineaTicket.productoTalla.talla.descripcion}"></h:outputText>
                                </p:column>
                                <p:column headerText="#{messages.Pvp}">
                                    <h:outputText value="#{lineaTicket.total}">
                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                    </h:outputText>
                                </p:column>
                                <p:column headerText="#{messages.Cantidad}">
                                    <p:inputText styleClass="pedidoInput" value="#{lineaTicket.cantidad}">
                                        <p:ajax update=":productosTicketForm:datosProductos :cobroForm:panelCobro :datosCajeroForm:ticketGrowl" event="change" process=":productosTicketForm:datosProductos" listener="#{nuevaDevolucionBean.onLineaTicketCambiada(lineaTicket)}"></p:ajax>
                                    </p:inputText>
                                </p:column>
                                <p:column headerText="#{messages.Descuento}">
                                    <h:outputText value="#{lineaTicket.descuento}"></h:outputText>
                                </p:column>
                                <p:column headerText="#{messages.Iva}">
                                    <h:outputText value="#{lineaTicket.iva}">
                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                    </h:outputText>
                                </p:column>
                                <p:column rendered="#{lineaTicket.almacen!=null}" headerText="#{messages.Almacen}">
                                    <p:selectOneMenu value="#{lineaTicket.almacen}" id="selectAlmacenLineaTicket" converter="#{almacenConverter}" effect="fade">  
                                        <f:selectItem itemLabel="#{messages.SeleccionaAlmacen}" itemValue="" />  
                                        <f:selectItems value="#{nuevaDevolucionBean.almacenesVentasAsociados}" var="almacen" itemLabel="#{almacen.descripcion}" itemValue="#{almacen}"/>  
                                    </p:selectOneMenu>
                                </p:column>
                            </p:dataTable>
                        </p:panel>                    
                    </h:form>
                </p:panel>                
            </ui:define>

        </ui:composition>

    </body>
</html>
